package com.xr.core.system.service;

import com.xr.core.system.common.base.MyService;
import com.xr.core.system.entity.roleModule.AssignmentPermissionDTO;
import com.xr.core.system.entity.roleModule.Role;

import java.util.List;

/**
 * 角色表(Role)表服务接口
 */
public interface RoleService extends MyService<Role> {

    /**
     * 给角色分配权限
     *
     * @param assignmentPermissionDTO
     * @return
     */
    boolean assignmentPermissionForRole(AssignmentPermissionDTO assignmentPermissionDTO);

    /**
     * 获取当前角色已选的权限
     *
     * @param id
     * @return
     */
    List<Long> listCheckedPermissionForRole(Long id);

    /**
     * 获取用户关联的角色
     *
     * @param id
     * @return
     */
    List<Long> getRoleByUserId(Long id);

    /**
     * 新增数据
     *
     * @param role
     * @return
     */
    boolean insert(Role role);

    /**
     * 修改数据
     *
     * @param role
     * @return
     */
    boolean update(Role role);

    /**
     * 批量设置内置角色
     *
     * @param idList
     * @return
     */
    boolean setInitRole(List<Long> idList);

    /**
     * 批量设置默认角色
     *
     * @param idList
     * @return
     */
    boolean setDefaultRole(List<Long> idList);

    /**
     * 获取全部默认角色id
     *
     * @return
     */
    List<Object> listDefaultRole();

    /**
     * 通过角色code查询角色的所有权限
     *
     * @param code
     * @return
     */
    List<String> permissionCodeByRoleCode(String code);

}

